package eTaxi;

import java.net.InetAddress;
import java.net.UnknownHostException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

/*
 * BankServer provvede a creare un Registry RMI e successivamente creare un
 * oggetto remoto di tipi Bank;
 * nel caso la porta  di default si trovi occupata tenta di creare il Registry sulla porta successiva.
 */


public class BankServer {

    public static void main(String[] args) {
        
        Bank bank;
        InetAddress serverAddr;
        int port = 11111; 

        
        boolean binded = false;

        try {
            serverAddr = InetAddress.getLocalHost();
                       
        }

        catch (UnknownHostException e) {
            e.printStackTrace();
            System.out.println("Errore!");
            return; 
        }

        while (!binded)

            try {
                bank = new Bank();
                Registry reg = LocateRegistry.createRegistry(port);
                reg.rebind("bank", bank);
                System.out.println("Banca " + serverAddr
                        + " attiva sulla porta " + port);
                binded = true;
            }

            catch (RemoteException e) {
            	 System.out.println("Errore! " +e);
                System.out.println("Errore: impossibile usare la porta " + port
                        + "; provo con la porta successiva!");
                port++;
            }

    }// fine main

}
